#include <iostream>

using i64 = long long;

constexpr int N = 1E5 + 5;
constexpr int MOD = 1E9 + 7;

i64 fact[N];
i64 invf[N];
i64 inv[N];

i64 pow(i64 a, i64 b, i64 p) {
    i64 re = 1;
    for (; b; b >>= 1, a = a * a % p) {
        if (b & 1) {
            re = re * a % p;
        }
    }
    return re;
}

void init() {
    fact[0] = invf[0] = 1, inv[0] = 0;
    for (int i = 1; i < N; ++i) {
        fact[i] = fact[i - 1] * i % MOD;
        inv[i] = pow(i, MOD - 2, MOD);
        invf[i] = invf[i - 1] * inv[i] % MOD;
    }
}

i64 C(int a, int b) {
    if (b > a) {
        return 0;
    }
    return fact[a] * invf[a - b] % MOD * invf[b] % MOD;
}